<%-- 
    Document   : visualizarEvento
    Created on : 20/10/2014, 23:46:52
    Author     : luiz
--%>
<%@page import="java.text.NumberFormat"%>
<%@page import="entidade.Mensalidade"%>
<%@page import="dao.MensalidadeDAO"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="javax.sound.midi.SysexMessage"%>
<%@page import="java.util.ArrayList"%>
<%@page import="dao.OrcamentoDAO"%>
<%@page import="entidade.Orcamento"%>
<%@page import="entidade.Fornecedor"%>
<%@page import="dao.FornecedorDAO"%>
<%@page import="dao.UsuarioDAO"%>
<%@page import="entidade.Evento"%>
<%@page import="dao.EventoDAO"%>
<%@page import="util.Util"%>
<%@page import="java.util.List"%>
<%@page import="dao.UsuarioEventoDAO"%>
<%@page import="entidade.UsuarioEvento"%>
<%@page import="entidade.Usuario"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Visualizar Eventos</title>
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <link rel="stylesheet" type="text/css" href="css/foundation/foundation.min.css">
        <link rel="stylesheet" type="text/css" href="css/foundation/normalize.css">
        <script src="js/prefixfree-1.0.7.js"></script>
        <script src="js/jquery-1.11.1.min.js"></script>
        <script src="js/jquery-1.7.1.min.js" ></script>
        <script src="js/foundation.min.js"></script>
        <script src="js/script.js"></script>


        <%
            Util util = new Util();
            UsuarioDAO usuarioDAO = new UsuarioDAO();
            Long codigoEvento = 0L;
            EventoDAO eventoDAO = new EventoDAO();
            Evento evento = new Evento();
            UsuarioEventoDAO usuarioEventoDAO = new UsuarioEventoDAO();
            List<UsuarioEvento> listUsuarioEventos = new ArrayList<UsuarioEvento>();
            FornecedorDAO fornecedorDAO = new FornecedorDAO();
            boolean passou = true;
            try
            {
                codigoEvento = Long.parseLong(util.validaParametro(request.getParameter("evento")));
            }
            catch (NumberFormatException e)
            {
                System.out.print("Erro ao pegar parametro");
            }
            if (eventoDAO.buscaID(Evento.class, codigoEvento) != null)
            {
                evento = eventoDAO.buscaID(Evento.class, codigoEvento);
                System.out.print("Evento encontrado");
            }
            else
            {
                System.out.print("Evento iqual a null");
                response.sendRedirect("listarEventos.jsp");
            }
            Long pedido = 0L;
            System.out.printf("11");
            try
            {
                String adcPedidoId = util.validaParametro(request.getParameter("fornecedor"));
                pedido = Long.parseLong(adcPedidoId);
                System.out.printf("22");
            }
            catch (Exception e)
            {
                pedido = 0L;
                passou = false;
            }
            System.out.printf("33");
            if (passou)
            {
                System.out.printf("44");
                Orcamento orcamento = new Orcamento();
                OrcamentoDAO orcamentoDAO = new OrcamentoDAO();
                orcamento = orcamentoDAO.buscarOrcamentoEvento(evento);
                System.out.printf("55");
                if (orcamento.getEvento() == null)
                {
                    orcamento.setEvento(evento);
                    System.out.printf("66");
                }
                fornecedorDAO = new FornecedorDAO();
                Fornecedor adcNovoFornecedor = new Fornecedor();
                try
                {
                    System.out.printf("77");
                    adcNovoFornecedor = fornecedorDAO.buscaID(Fornecedor.class, pedido);
                    System.out.print(adcNovoFornecedor.getNome());
                }
                catch (Exception e)
                {
                    System.out.printf("88");
                    passou = false;
                }
                if (passou)
                {
                    System.out.printf("99");
                    List<Fornecedor> Listafornecedor = new ArrayList<Fornecedor>();
                    System.out.printf("110");
                    Listafornecedor = orcamento.getCotacao();
                    if (Listafornecedor == null)
                    {
                        Listafornecedor = new ArrayList<Fornecedor>();
                    }
                    boolean existe = false;
                    for (Fornecedor f : Listafornecedor)
                    {
                        if (f.getId().equals(adcNovoFornecedor.getId()))
                        {
                            existe = true;
                            System.out.printf("existe");
                        }
                    }
                    if (!existe)
                    {
                        System.out.printf("111");
                        Listafornecedor.add(adcNovoFornecedor);
                        System.out.printf("112");
                        orcamento.setCotacao(Listafornecedor);
                        System.out.printf("113");
                        orcamentoDAO.salvar(orcamento);
                    }
                }
            }
            Usuario u = (Usuario) session.getAttribute("user");
            listUsuarioEventos = usuarioEventoDAO.buscarEvento(evento);
            Boolean gerencia = false;
            if (listUsuarioEventos.isEmpty())
            {
                System.out.print("lista vazia");
            }
            for (UsuarioEvento list : listUsuarioEventos)
            {
                if (list.getUsuario().getId().equals(u.getId()) && list.getEvento().getId().equals(evento.getId()))
                {
                    System.out.print("Usuario administrador do evento validado");
                    gerencia = true;
                }
            }
            if (!gerencia)
            {
                System.out.print("Usuario administrador do evento não validado");
                response.sendRedirect("listarEventos.jsp");
            }
            session.setAttribute("evento", evento);
        %>
    </head>

    <body class="fundo">
        <div class="menu_interno">
            <div class="menu_interno_logo">
                <img src="imagens/logo.png">
            </div>
            <div class="menu_interno_list">
                <div id="accordian">
                    <ul class="ul">
                        <li>
                            <h3><span class="icon-dashboard"></span><a href="../CadastroUsuario.jsp">Cadastrar Usuario</a></h3>
                        </li>
                        <li>
                            <h3><span class="icon-dashboard"></span><a href="listarEventos.jsp">Listar Eventos</a></h3>
                        </li>

                    </ul>
                </div>

            </div>
            <div class="menu_interno_rodape">
                <a href="principal.jsp"><img src="imagens/back.png"></a>
            </div>
        </div>
        <div id="container" class="content">
            <div class="margintop_content">
                <h1></h1>

                <%if (evento.isFechado())
                    {%>
                <%
                    OrcamentoDAO o = new OrcamentoDAO();
                    Orcamento orcamento = new Orcamento();
                    orcamento = o.buscarOrcamentoEvento(evento);
                    System.out.print("123");
                    List<Fornecedor> listaFornecedors = orcamento.getCotacao();
                    System.out.print("456");
                    int x = 1;

                %>
                <h4><%=evento.getNome()%></h4>
                <form>
                    <fieldset>
                        <legend>Detalhes</legend>
                        <table>
                            <thead>
                                <tr>
                                    <th>Descrição</th>
                                    <th>Data</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td><%=evento.getDescricao()%></td>
                                    <td><%
                                   try{ 
                                   out.print(new SimpleDateFormat("dd/MM/yyyy").format(evento.getDataEvento()));
                                   }catch(Exception e){
                                       
                                   }
                                    
                                    %></td>                           
                                </tr>
                            </tbody>
                        </table>
                    </fieldset>
                </form>
                <form>
                    <fieldset>
                        <legend>Pagamentos</legend>
                        <table>
                            <thead>
                                <tr>
                                    <th>Total Parcelas</th>
                                    <th>Parcelas Pagas</th>
                                    <th>Parcelas Restantes</th>                        
                                    <th>Valor Parcela</th>
                                    <th>Valor Pago</th>
                                    <th>Valor Restante</th>
                                </tr>
                            </thead>
                            <%
                                List<UsuarioEvento> listaUsuarioEventos = usuarioEventoDAO.buscarUsuarioEvento(u, evento);
                                List<Mensalidade> listaMensalidades = new MensalidadeDAO().buscarMensalidadesUsuarioEvento(listaUsuarioEventos.get(0));
                                int parcelasPagas = 0;
                                NumberFormat nf = NumberFormat.getInstance();
                                nf.setMaximumFractionDigits(2);
                                nf.setMinimumFractionDigits(2);
                            %>
                            <%for (Mensalidade mens : listaMensalidades)
                                {
                                    if (mens.isPago())
                                    {
                                        parcelasPagas++;
                                    }
                                }
                            %>
                            <tr> 
                                <td><%=listaMensalidades.size()%></td>
                                <td><%=parcelasPagas%></td>
                                <td><%=listaMensalidades.size() - parcelasPagas%></td>                             
                                <td>R$<%=nf.format(listaMensalidades.get(0).getValor())%></td>
                                <td>R$<%=nf.format(listaMensalidades.get(0).getValor() * parcelasPagas)%></td>
                                <td>R$<%=nf.format((listaMensalidades.get(0).getValor() * listaMensalidades.size()) - (listaMensalidades.get(0).getValor() * parcelasPagas))%></td>
                            </tr>
                            <%
                                }
                                else
                                {
                                    out.print("Evento não foi fechado ... Aguarde");
                                }%>
                            </tbody>
                        </table>
                    </fieldset>
                </form>

            </div>
        </div>
        <div class="lateral_esq">
            <img src="imagens/capa3.png">
        </div>
    </body>


</html>
